/*
    https://wangdoc.com/javascript/types/null-undefined-boolean.html
    数据类型-null, undefined 和 布尔值
 */

var a = undefined;
var b = null;

if (!undefined) {
    console.log('undefined is false');
}

if (!null) {
    console.log("null is false");
}

console.log('undefined == null : ' + (undefined == null));
console.log('undefined === null : ' + (undefined === null));

// 变量声明了, 但没有赋值
var i;
console.log(i) // undefined

// 调用函数时, 应该提供的参数没有提供, 该参数等于 undefined
function f(x) {
    console.log("call f()");
    return x;
}

console.log('f() : ' + f()); // undefined

// 对象没有赋值的属性
var o = new Object();
console.log('o.p : ' + o.p); // undefined

// 函数没有返回值时, 默认返回 undefined
function f1() {}

console.log("f1() : " + f1()); // undefined

// about boolean
if ('') {
    console.log('\'\''); // no any input
}
if ([]) {
    console.log('[]');
}

if ({}) {
    console.log('{}');
}